#include <sys_head.h>

int main(int argc, char const *argv[])
{
    // ftok函数会把我们出入的两个参数通过某种算法生成一串秘钥
    key_t key = ftok("/home/student/桌面",1000);
    //创建/打开共享内存，并且返回共享内存的id
    int id = shmget(key,128,IPC_CREAT|0666);
    //@指定的内存块，并返回内存的地址，相当于告诉系统当前进程和内存块之间建立了联系
    void * p = shmat(id,NULL,0);

    //把helloworld从共享内存中取出来
    // char buf[128];
    // strcpy(buf,p);
    // printf("%s\n",buf);

    // 把数组从共享内存中取出来
    int * pInt = (int *)p;
    for (int i = 0; i < 10; i++)
    {
        printf("%d\n",pInt[i]);
    }
    

    //断开当前进程与共享内存的联系，p也无法再使用
    shmdt(p);
    //释放共享内存给系统
    shmctl(id,IPC_RMID,NULL);
    return 0;
}
